package com.hang.service;

import com.hang.model.Clazz;
import com.hang.model.Task;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hang.vo.TaskDetail;
import com.hang.vo.TaskVo;

import java.util.List;
import java.util.Map;

/**
 *
 */
public interface TaskService extends IService<Task> {

    //发布任务
    void saveTask(TaskVo taskVo);

    //获取班级对应的任务列表
    List<Task> getTaskLists(String clazzId, Integer page, Integer size);

    //是否还有数据
    boolean hasMoreData(String clazzId, Integer page, Integer size);

    //获取任务的详尽信息
    Map<String, Object> getDetails(Long taskId, Integer status);

    //返回任务所处的经纬度信息
    Map<String, Object> getPosition(Long taskId);

    //根据学号获取学生所有的任务列表
    List<TaskDetail> getTasksByStudentId(String studentId);

    //获取指定班级下的考勤列表
    List<TaskDetail> getTasksByStudentIdAndClazzId(String studentId, String clazzId,Integer page,Integer size);

    //获取学生的考勤打卡任务数
    Integer getTaskCount(String studentId);

    //获取老师发布的任务数
    Integer getTeacherTaskCounts(String teacherId);

    //获取到达截至时间之前的任务列表
    List<Task> getRecentlyTasks();

    //获取昨天的任务列表
    List<Task> getTodayTasks();

    //获取班级列表中的最近一周考勤情况
    Map<String, Object> statisticsWeek(List<Clazz> clazzList);

    //获取学生最近一周的打卡考勤情况
    Map<String, Object> getTaskResult(List<Clazz> clazzList,String studentId);

    //获取当前任务的状态
    Map<String, Object> getTaskStatus(String studentId,Long taskId);
}
